From: Keir Fraser Date: Sun, 17 Jan 2010 18:20:04 +0000 (+0000) Subject: xend: Use max_node_id rather than nr_nodes where appropriate. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~12725 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/%22bookmarks:/?a=commitdiff_plain;h=36197bd8473609a0a407446c3904932ddd242ca7;p=xen.git xend: Use max_node_id rather than nr_nodes where appropriate. Signed-off-by: Keir Fraser --- diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 21fb719891..89316337ab 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -2690,7 +2690,7 @@ class XendDomainInfo: else: def find_relaxed_node(node_list): import sys - nr_nodes = info['nr_nodes'] + nr_nodes = info['max_node_id']+1 if node_list is None: node_list = range(0, nr_nodes) nodeload = [0] @@ -2722,12 +2722,12 @@ class XendDomainInfo: node_memory_list = info['node_to_memory'] needmem = self.image.getRequiredAvailableMemory(self.info['memory_dynamic_max']) / 1024 candidate_node_list = [] - for i in range(0, info['nr_nodes']): + for i in range(0, info['max_node_id']+1): if node_memory_list[i] >= needmem and len(info['node_to_cpu'][i]) > 0: candidate_node_list.append(i) best_node = find_relaxed_node(candidate_node_list)[0] cpumask = info['node_to_cpu'][best_node] - best_nodes = find_relaxed_node(filter(lambda x: x != best_node, range(0,info['nr_nodes']))) + best_nodes = find_relaxed_node(filter(lambda x: x != best_node, range(0,info['max_node_id']+1))) for node_idx in best_nodes: if len(cpumask) >= self.info['VCPUs_max']: break @@ -2754,9 +2754,9 @@ class XendDomainInfo: while (retries > 0): physinfo = xc.physinfo() free_mem = physinfo['free_memory'] - nr_nodes = physinfo['nr_nodes'] + max_node_id = physinfo['max_node_id'] node_to_dma32_mem = physinfo['node_to_dma32_mem'] - if (node > nr_nodes): + if (node > max_node_id): return # Extra 2MB above 64GB seems to do the trick. need_mem = 64 * 1024 + 2048 - node_to_dma32_mem[node] diff --git a/tools/python/xen/xend/XendNode.py b/tools/python/xen/xend/XendNode.py index b6ef374483..6541b63f54 100644 --- a/tools/python/xen/xend/XendNode.py +++ b/tools/python/xen/xend/XendNode.py @@ -879,7 +879,7 @@ class XendNode: whitespace='' try: node_to_cpu=pinfo['node_to_cpu'] - for i in range(0, pinfo['nr_nodes']): + for i in range(0, pinfo['max_node_id']+1): str+='%snode%d:%s\n' % (whitespace, i, self.list_to_strrange(node_to_cpu[i])) @@ -892,7 +892,7 @@ class XendNode: whitespace='' try: node_to_memory=pinfo[key] - for i in range(0, pinfo['nr_nodes']): + for i in range(0, pinfo['max_node_id']+1): str+='%snode%d:%d\n' % (whitespace, i, node_to_memory[i] / 1024) @@ -927,7 +927,8 @@ class XendNode: 'free_memory', 'node_to_cpu', 'node_to_memory', - 'node_to_dma32_mem' + 'node_to_dma32_mem', + 'max_node_id' ] return [[k, info[k]] for k in ITEM_ORDER]